.\" Copyright 1999 Red Hat Software, Inc.
.\" Written by Michael K. Johnson <johnsonm@redhat.com>
.TH pam_console 8 2005/10/4 "Red Hat" "System Administrator's Manual"
.SH NAME
pam_console \- determine user owning the system console
.SH SYNOPSIS
.B session optional pam_console.so
.br
.B auth required pam_console.so
.SH DESCRIPTION
pam_console.so is designed to give users at the physical console
(virtual terminals and local xdm-managed X sessions by default, but
that is configurable) capabilities that they would not otherwise have,
and to take those capabilities away when the are no longer logged in at
the console.  It provides two main kinds of capabilities: file permissions
and authentication.

When a user logs in at the console and \fBno other user is currently
logged in at the console\fP, pam_console.so will run handler programs
specified in the file /etc/security/console.handlers such as
pam_console_apply which changes permissions and ownership of files as
described in the file /etc/security/console.perms.
That user may then log in on other terminals that are considered part
of the console, and as long as the user is still logged in at any one
of those terminals, that user will own those devices.  When the user
logs out of the last terminal, the console may be taken by the next
user to log in.  Other users who have logged in at the console during
the time that the first user was logged in will not be given ownership
of the devices unless they log in on one of the terminals; having done
so on any one terminal, the next user will own those devices until
he or she has logged out of every terminal that is part of the physical
console.  Then the race can start for the next user.  In practice, this
is not a problem; the physical console is not generally in use by many
people at the same time, and pam_console.so just tries to do the right
thing in weird cases.

When an application attempts to authenticate the user \fBand this user
is already logged in at the console\fP, pam_console.so checks whether
there is a file in /etc/security/console.apps/ directory with the same name
as the application servicename, and if such a file exists, authentication
succeeds. This way pam_console may be utilized to run some system
applications (reboots, config tools) without root password,
or to enter user password on the first system login only.

.SH ARGUMENTS
.IP debug
turns on debugging
.IP allow_nonroot_tty
gain console locks and change permissions even if the TTY's owner is not root.
.IP handlersfile=\fIfilename\fP
tells pam_console.so to get the list of the handlers from a different
file than /etc/security/console.handlers
.\" .IP glob
.\" \fBnot yet implemented\fP interpret strings as globs instead of
.\" regexp expressions.
.SH EXAMPLE
\fB/etc/pam.d/some-system-tool\fP:
.br
auth sufficient pam_rootok.so
.br
auth required pam_console.so
.br

.br
\fB/etc/pam.d/some-login-service\fP:
.br
auth sufficient pam_console.so
.br
auth required pam_unix.so
.br
session required pam_unix.so
.br
session optional pam_console.so
.br
.SH FILES
\fI/var/run/console/\fP
.br
\fI/var/run/console/console.lock\fP
.br
\fI/etc/security/console.apps\fP
.br
\fI/etc/security/console.handlers\fP
.SH SECURITY NOTES
When pam_console "auth" is used for login services which provide
possibility of remote login, it is necessary to make sure the application
correctly sets PAM_RHOST variable, or to deny remote logins completely.
Currently, /bin/login (invoked from telnetd) and gdm is OK, others may be not.
.SH "SEE ALSO"
.BR console.perms (5)
.br
.BR console.apps (5)
.br
.BR console.handlers (5)
.br
.BR pam_console_apply (8)
.br
\fI/usr/share/doc/pam*/html/index.html\fP
.SH BUGS
Let's hope not, but if you find any, please report them via the "Bug Track"
link at http://bugzilla.redhat.com/bugzilla/
.SH AUTHORS
Michael K. Johnson <johnsonm@redhat.com>
.br
Support of console.handlers and other improvements by
Tomas Mraz <tmraz@redhat.com>
